package thread;

/**
 * Creared with IntelliJ IDEA.
 * Description:线程状态
 * User:yxd
 * Date:2022-03-23
 * Time:13:18
 */
public class Demo12 {
    public static void main(String[] args) {
        Thread t = new Thread(()->{
            while(true){
                try {
                    Thread.sleep(1000);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        });
        //System.out.println(t.getState());//此时系统中还没有线程所以其状态应该是NEW
        t.start();
        System.out.println(t.getState());//开始线程但没有结束状态就是RUNNABLE

        try {

            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(t.getState());//当前的线程在一定时间内是阻塞的状态 TIMED_WAITING  还有两种阻塞的状态一种是加锁之后BLOCKED
        //还有一种阻塞状态就是当前线程在等待唤醒,导致了阻塞状态为WAITING
        //这样细分的好处 一些关键的线程卡死的时候就可以看当前线程的状态来判断出错原因


        //System.out.println(t.getState());//线程结束了但t还在状态就是TERMINATED

    }
}
